1. Field of the Invention
This invention relates generally to digital data systems, and more particularly to techniques for managing the display of data by such systems in an environment wherein a single display device may provide for a plurality of logical displays functioning independently of each other. Each logical display is known as a "window". Windows may all be displayed concurrently in their entirety, or some windows may be partially or completely covered by other windows.
2. Description of the Prior Art
References:
Graphics in Overlapping Bitmap Layers, Rob Pike, ACM Transactions on Graphics, April, 1983. PA1 SMALLTALK-80, The Language and its Implementation, Adele Goldberg and David Robson, Addison-Wesley, 1983. (Particularly chapters 17, 18, 20.)
Digital data systems have been equipped with display devices almost since their advent. The type of display that has taken preeminence as the most flexible for interfacing with the user is the cathode ray tube display. A recently evolved mode of the use of such displays is to permit several users, several programs, or several processes to share the available space on a display, with each such user, program, or process being allocated a certain amount of display area. Each such area is known as a "window".
Windows, then, may be thought of as independent logical displays co-existing on one physical display. An analogy is several sheets of paper on a desktop; they may be arranged so that all are simultaneously visible, or as they are manipulated some may completely cover (obscure) or partially cover (occlude) others. When obscured or occluded sheets are again uncovered, they still contain all the information that was temporarily invisible.
Windows on a display may likewise be manipulated so that some are sometimes partially or completely invisible on the display--i.e., they present the appearance of being "covered" by other windows. A good embodiment permits the data in windows to be manipulated even while the affected windows or portions of windows are not visible on the screen, with subsequent "uncovering" revealing the manipulations that were performed on a window while invisible.
Windowing has heretofore been accomplished primarily by software. While such an implementation of windowing can provide sufficient capability, it does so at the expense of computational overhead--the user's requests, taking the form of software calls, must go through levels of interpretation by software in order to derive a series of machine-language instructions that the system can execute, even for simple (i.e., unoccluded) windows. Another reason for the severity of this overhead is that the description information (of which there is a much larger amount for a windowed display than for a simple unitary display) must be completely reprocessed every request--there is no architectural provision for retaining the results of previous computations affecting those portions of the display not involved in a current change. As the windowing capabilities are made more sophisticated, this overhead becomes more and more severe.